package com.adnaan.backend.service;

import com.adnaan.backend.entity.Order;
import com.adnaan.backend.entity.vo.OrderVo;
import com.baomidou.mybatisplus.extension.service.IService;

public interface OrderService extends IService<Order> {
    /**
     * 创建订单
     *
     * @param userId 用户ID
     * @return 订单ID
     */
    Long createOrder(Long userId, OrderVo orderVo);

    /**
     * 更新订单状态
     *
     * @param id     订单ID
     * @param status 状态：0-待支付 1-待发货 2-已发货 3-已完成 4-已取消
     * @return 是否成功
     */
    boolean updateStatus(Long id, Integer status);

    /**
     * 取消订单
     *
     * @param id 订单ID
     * @return 是否成功
     */
    boolean cancelOrder(Long id);

    /**
     * 确认收货
     *
     * @param id 订单ID
     * @return 是否成功
     */
    boolean confirmReceive(Long id);

    /**
     * 取消超时未支付订单
     *
     * @return 取消的订单数量
     */
    int cancelTimeoutOrders();

    String remind(Long id);
} 